/*
 * @Authoryour name
 * @Date2020-12-16 23:06:52
 * @LastEditTime2020-12-16 23:07:26
 * @LastEditorsyour name
 * @DescriptionIn User Settings Edit
 * @FilePath\STM32H750_FreeRTOS\Bsp\bsp_gpio\bsp_gpio.h
 */ 
#ifndef BSP_GPIO_H_
#define BSP_GPIO_H_

#include "common_types.h"
#include "stm32h7xx_hal.h"

#define DEBUG_GPIO_CLK_EN()                     \
    do{                                         \
        __HAL_RCC_GPIOB_CLK_ENABLE();           \
    }while(0)

#define DEBUG_GPIO_SET(index)  
#define DEBUG_GPIO_CLR(index)  

typedef enum bsp_gpio_index
{
    GPIO_B0 = 0,
    GPIO_B1,
    GPIO_B2,
    GPIO_NUM,
}bsp_gpio_index_t;

typedef struct bsp_gpio_cfg
{
    GPIO_TypeDef *port;
    uint16_t pin;    
}bsp_gpio_cfg_t;

extern void bsp_gpio_init(void);
extern void bsp_gpio_deinit(void);

extern void bsp_gpio_set(uint8_t index);
extern void bsp_gpio_clear(uint8_t index);
extern void bsp_gpio_toggle(uint8_t index);

#endif
